/*
*   Copyright: Fabian Hajek (2012)  Programmieren: C   -   Semesterarbeit WS 2011/2012
*
*   Projekt: Schreinerei.exe
*
*   Author: $Author: webmaster@die-schwarzen-schwaben.de $
*
*   Name: func_delete.c
*   URL:    $URL: http://semesterarbeit-wi-11-12.googlecode.com/svn/trunk/Semesterarbeit2/Schreinerei/Funktionen/func_delete.c $
*
*   Description:   Beeinhaltet die Funktion zum Loeschen vorhandener Ressourcen, Arbeitsschritten, oder Schraenken
*
*   Last update:    $Date: 2012-02-24 21:45:10 +0000 (Fri, 24 Feb 2012) $
*
*   Rev:      $Rev: 56 $
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


/*INCLUDE input functions*/
#include "../Funktionen/func_input.h"
#include "../default/structures.h"
#include "../Definitionen/define.h"
#include "func_delete.h"

void delete_el()
{
    char buf[3];
    HEAD
    printf("\n%33sELEMENT L\x94SCHEN%33s"," "," ");
    printf("\nBitte Element ausw\x84 \bhlen:\n\n");
    printf("1. Schrank\n2. Ressource\n3. Arbeitsschritt\n\n");

    int i;
    fgets(buf,3,stdin);
    sscanf(buf,"%i",&i);
    fflush(stdin);

    char z = (i>0 && i<4)?0:1;

    while(z)
    {
        printf("\nIhre Eingabe war ung\x81ltig. Bitte erneut ausw\x84 \bhlen: ");
        fgets(buf,3,stdin);
        sscanf(buf,"%i",&i);
        fflush(stdin);
        z = (i>0 && i<4)?0:1;
    }

    switch(i)
    {
        case 1:
            del_schrank();
            break;
        case 2:
            del_ressource();
            break;
        case 3:
            del_step();
            break;
    }
    HEAD
}

void del_schrank()
{
    int i = 0;
    int z;
    char buf[3];
    HEADLINE
    printf("\nSCHRANK L\x94SCHEN\n");
    printf("\nBitte Schrank ausw\x84 \bhlen:\n");
    p_schrank = p_schrank_end;
    while(p_schrank)
    {
        p_schrank_act[i] = p_schrank;
        i++;
        printf("%d. %s\n",i,p_schrank->name);
        p_schrank = p_schrank->prev_schrank;
    }

    printf("\nIhre Auswahl: ");
    fgets(buf,3,stdin);
    sscanf(buf,"%i",&z);
    fflush(stdin);

    char y = (z>0 && z<=i)?0:1;

    while(y)
    {
        printf("\nIhre Eingabe war ung\x81ltig. Bitte erneut ausw\x84 \bhlen: ");
        fgets(buf,2,stdin);
        sscanf(buf,"%i",&z);
        fflush(stdin);
        y = (z>0 && z<=i)?0:1;
    }

    printf("\nSind Sie sicher, dass sie den Schrank %s l\x94schen wollen? (y/n) ",p_schrank_act[z-1]->name);

    fgets(buf,2,stdin);
    sscanf(buf,"%s",&buf);
    fflush(stdin);
    y = (buf[0]=='y'||buf[0]=='n')?0:1;

    while(y)
    {
        printf("\Ihre Eingabe war ung\x81ltig. Bitte erneut ausw\x84 \bhlen: ");
        fgets(buf,2,stdin);
        sscanf(buf,"%s",&buf);
        fflush(stdin);
        y = (buf[0]=='y'||buf[0]=='n')?0:1;
    }

    if(buf[0]=='n')
    {
        printf("Der Vorgang wurde abgebrochen.\n\n");
    }
    else
    {
        /*Vorheriger Schrank*/
        SCHRANK *p_schrank_prev = p_schrank_act[z-1]->prev_schrank;
        SCHRANK *p_schrank = p_schrank_act[z-1];
        SCHRANK *p_schrank_next = p_schrank_act[z-1]->next_schrank;

        if(p_schrank_prev)
        {
            p_schrank_prev->next_schrank = p_schrank_next;
        }
        else
        {
            p_schrank_next->prev_schrank = 0;
        }

        if(p_schrank_next)
        {
            p_schrank_next->prev_schrank = p_schrank_prev;
        }
        else
        {
            p_schrank_prev->next_schrank = 0;
        }

        p_schrank_end = p_schrank_next;

        /*Neue letzte Adresse zuweisen*/
        free(p_schrank_act[z-1]);

        printf("Der Schrank wurde erfolgreich gel\x81scht!\n\n");
    }

}

void del_ressource()
{

}

void del_step()
{

}

void del_order(ORDER *get_order)    //!Immer der erste ORDER in der Liste
{
    ORDER *next_order;

    if(get_order->next_order)   //Es existiert ein anderer Schrank
    {
        p_order_start = get_order->next_order;
    }
    else
    {
        p_order_start = 0;
        p_order_end = 0;
    }

    free(get_order);
}
